package org.wzy.design.patterns.factory;

import org.wzy.design.patterns.factory.simple.Audi;
import org.wzy.design.patterns.factory.simple.Benz;
import org.wzy.design.patterns.factory.simple.Bmw;
import org.wzy.design.patterns.factory.simple.Car;

/**
 * 对于这个工厂来讲(很强大) --> Why?
 * 这个工厂啥都能生产(其实不符合现实)
 */
public class SimpleFactory {
	
	// 实现统一、专业化管理
	// 如果没有工厂模式，自产自销，则为小作坊，没有执行标准
	// 
	public Car getCar(String name) {
		/**
		 * Spring中的工厂模式
		 * 单例bean
		 * 被代理过的bean
		 * 最原始的bean
		 * List类型的bean
		 * 作用域不同的bean
		 */
		if ("BMW".equalsIgnoreCase(name)) {
			return new Bmw();
		} else if ("BENZ".equalsIgnoreCase(name)) {
			return new Benz();
		} else if ("AUDI".equalsIgnoreCase(name)) {
			return new Audi();
		} else {
			System.out.println("没有这项工艺，产品无法生产。");
		}
		
		return null;
	}
}
